import axios from 'axios'
// 可以直接使用
import { Message } from 'element-ui'


// 全局配置成功
const service = axios.create({
    baseURL: process.env.VUE_APP_SERVICE_URL,
    timeout: 10000
})

/*拦截的过程 
  1. 用户点击按钮发送请求
  2. 请求 先到这个请求拦截器， http request headers，请求拦截器中可以操作请求头;
     登录的话有一个token（用户信息标识，证明你登录了）,你登录了要在以后的每一个请求加一个请求头，防止违规请求
     操作完成后必须放行 -> return config
  3. 请求拦截完，和后端交互完成，请求来到响应拦截器
     可以错误的判断提示、也可以对登录状态做判断
*/
// 请求拦截器
service.interceptors.request.use(
    (config) => {
        // console.log(config)
        // config.headers['Authorization'] = 'Bearer ' + token
        return config
    },

    (error) => {
        return Promise.reject(error)
    }
)


// 响应拦截器
service.interceptors.response.use(
    (response) => {
        // console.log(response)
        if (response.data.code !== 20000 && response.status === 200) {
            // 出错了
            // data.message
            Message({
                message: response.data.message || '错了错了，未知错误',
                type: "error"
            })
        }
        return response.data
    },

    (error) => {
        // this.$message
        Message({
            message: `网络出错了,${error}`,
            type: "error"
        })
        return Promise.reject(error)
    }
)

export default service;


